package org.hq.tool;


import jakarta.xml.bind.DatatypeConverter;

import java.io.UnsupportedEncodingException;

public class Baseb64 {
    /**
     * base解码（方法一）
     *
     * @param base64Str 待解码字符串
     * @return 解码字符串
     * @explain DatatypeConverter.java实现
     */
    public static String decode(String base64Str) {
        // 解码后的字符串
        String str = "";
        // 非空字符串才进行解码
        if (base64Str != null && base64Str.length() > 0) {
            // 解码
            byte[] base64Bytes = DatatypeConverter.parseBase64Binary(base64Str);
            try {
                // byte[] 转 String
                str = new String(base64Bytes, "utf-8");

            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return str;
    }

    /**
     * base64 编码（方法一）
     *
     * @param str 待编码字符串
     * @return 编码字符串
     * @explain DatatypeConverter.java实现
     */
    public static String encode(String str) {
        // base64字符串
        String base64Str = "";
        try {
            // 非字符串才进行编码
            if (str != null && str.length() > 0) {
                // String 转 byte[]
                byte[] bytes = str.getBytes("utf-8");
                // 编码
                base64Str = DatatypeConverter.printBase64Binary(bytes);
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return base64Str;
    }

}
